Human-machine-interfaces (“HMI”), also known as operator interfaces, are used to present data that is collected by machines to a user via a computer screen or other display module. HMI packages also allow a user to control certain functions of machines from a remote location by entering data into the HMI. HMI packages are commonly used in industrial settings where certain real world conditions must be constantly monitored, maintained, and/or changed with industrial equipment and devices. HMI packages allow users to not only monitor a real world condition with the equipment from a remote location, but also allows the user to control the equipment from the remote location.
Conventional HMI packages consist of an acquisition component to acquire the data from a machine or machines and a visual component that is proprietary in nature for rendering the data into a fixed computer window for the user at the remote location. A programmable logic controller (“PLC”) is a computer that is dedicated to performing control functions and is used extensively in industrial applications. In a typical HMI package, a PLC is electrically connected to external devices, such as switches, sensors, relay contacts, gauges, valves, or other types of industrial equipment. The external devices are designed to convert a real world condition into representative electrical data signals. The data signals represent real world condition, such as temperature or the status of a switch being off or on. The PLC is programmed to periodically retrieve this real world data from the external device and transmit it via a serial link to a computer located at a remote site. This real world data is then displayed on a computer screen in an HMI in a tangible form.
HMI packages can also be designed and programmed so that a user can control certain external devices from the remote computer by entering user commands into field of an HMI. In HMI packages with such control capabilities, the PLC or other similar type of computer is further programmed to receive the user inputted data from the remote computer and send control signals to the external device causing the external device to respond according to the user input command.
Despite the sophistication of HMI packages, HMI's contain many undesirable limitations. For example, in displaying the representative real world data in the user's computer screen, HMI packages display a single page that is fixed in size. This is a problem because only one window can be opened at time and in sophisticated industries, a single page is not sufficient to relay all the necessary real world condition. Several pages may be required to display all the relevant data. The user can not easily view all of the necessary real world conditions in a convenient manner. Another drawback is that HMI packages require a proprietary means for creating graphics on a page, for positioning objects on each page, and for rendering data on each page. The ability to share the HMI among multiple computers requires either an installation of the same proprietary software on each machine or some additional software that permits remote computing. Thus, there is a need for an HMI that is inherently web browser based and as such would provide the universal accessibility and the power of the modern day web browser to an HMI.
While browser based HMI's have been developed, existing browser based HMI's operate in an inefficient manner in dynamically rendering the real world data. In order to display the real world data dynamically (i.e., continuously update and change the data displayed in the computer screen to correspond to the real world condition in real time), existing browser based HMI's utilize a browser-based refresh function. Using this refresh function is undesirable because the entire visible screen must be downloaded and reproduced, even if only a small area of the visible page is actually changing. This unnecessary download and reproduction of the entire page is slow and causes the entire screen to flash. This is inefficient from both the client computer and server standpoint.
Thus, a need exists for improved methods and apparatus for dynamically displaying real world data in real time in a browser based HMI.